/**
 * 集成3块的配置项
 * 配置1 window.ENV 来源 public/env.js
 * 配置2 devAndProdConfig 与开发还是生产相关的配置
 * 配置3 commonConfig
 */

import { devConfig, prodConfig } from './devAndProdConfig'
import { commonConfig } from './commonConfig'

// public/env.js的配置
const windowEnvConfig = window.ENV as {
    // 地图中心点位设置
    mapCenter: [number, number]
}

// 与生产还是开发环境相关的配置
const envConfig = import.meta.env.DEV ? devConfig : prodConfig

// 整合所有的配置, 具名导出
type AllConfigProps = typeof windowEnvConfig & typeof envConfig & typeof commonConfig
export const allConfig: AllConfigProps = Object.assign({}, windowEnvConfig, envConfig, commonConfig)

if (import.meta.env.DEV) {
    console.groupCollapsed('项目配置config')
    console.log(allConfig)
    console.groupEnd()
}
if (import.meta.env.DEV) {
    console.groupCollapsed('vite自带配置env')
    console.log(import.meta.env)
    console.groupEnd()
}
if (import.meta.env.DEV) {
    console.groupCollapsed('public文件夹下文件在项目中如何访问')
    console.log(
        '1、使用public下的env.js: `${import.meta.env.BASE_URL}env.js` ====>',
        `${import.meta.env.BASE_URL}env.js`,
    )
    console.log(
        '1、使用public下的env.js: `${allConfig.publicPath}env.js` ====>',
        `${allConfig.publicPath}env.js`,
    )
    console.groupEnd()
}
